/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.controller;

import com.persistencia.domain.Facultad;
import com.service.FacultadService;
import com.service.impl.FacultadServiceImpl;
import com.jsf.util.JsfUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author SHERLY
 */
@ManagedBean
@ViewScoped
public class FacultadController {

    private Facultad facultad;
    private Facultad facultadSeleccionado;
    private List<Facultad> listaFacultad;
    private FacultadService facultadService;
    
    public FacultadController() {
        facultad = new Facultad();
        facultadSeleccionado = new Facultad();
        listaFacultad = new ArrayList<Facultad>();
        facultadService = new FacultadServiceImpl();
        listarFacultad();
    }
    
    private void listarFacultad(){
        try{
            System.out.println("Entramos a listar Facultad");
            listaFacultad = facultadService.obtenerListaFacultad();           
        } catch (Exception ex) {
            Logger.getLogger(FacultadController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void consultarFacultad(){
        try{
            listarFacultad();
        } catch (Exception ex) {
            Logger.getLogger(FacultadController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void grabarFacultad(){
        FacesMessage msg = null;
        try{
            System.out.println("Entramos a crear facultad");
            facultadService.registrarFacultad(facultad);
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Inserción","La Facultad se creo satisfactoriamente.");
            facultad = new Facultad();
            listarFacultad();
        } catch (Exception ex) {
            Logger.getLogger(FacultadController.class.getName()).log(Level.SEVERE, null, ex);
            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Inserción","No se registro el ciclo.");
        }
        finally{
            
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    }
    
    public SelectItem[] getItemsFacultadSelectOne(){
        try {
            System.out.println("Facultad");
            
            return getSelectItems(facultadService.obtenerListaFacultad());
        } catch (Exception ex) {
            Logger.getLogger(FacultadController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
        
    private SelectItem[] getSelectItems(List<Facultad> listaFacultad) {
        SelectItem[] items = new SelectItem[listaFacultad.size()];
        int i = 0;
        for (Facultad objFacultad : listaFacultad) {
            items[i++] = new SelectItem(objFacultad.getNFctId(), objFacultad.getVNombre());
        }
        return items;
    }


    public Facultad getFacultad() {
        return facultad;
    }

    public void setFacultad(Facultad facultad) {
        this.facultad = facultad;
    }

    public Facultad getFacultadSeleccionado() {
        return facultadSeleccionado;
    }

    public void setFacultadSeleccionado(Facultad facultadSeleccionado) {
        this.facultadSeleccionado = facultadSeleccionado;
    }

    public FacultadService getFacultadService() {
        return facultadService;
    }

    public void setFacultadService(FacultadService facultadService) {
        this.facultadService = facultadService;
    }

    public List<Facultad> getListaFacultad() {
        return listaFacultad;
    }

    public void setListaFacultad(List<Facultad> listaFacultad) {
        this.listaFacultad = listaFacultad;
    }
        
}